feat: use im-rdkit-utilities instead of local rdkit_utils.py - #21
Merged
Conversation
The local copy was functionally identical to the newly published im-rdkit-utilities package (formatting/docstrings only), so this is a straight swap - all 13 consuming scripts already called it with the canonical signatures (generate_headers, create_reader/create_writer, etc), no call sites needed changing. This also fixes two latent bugs the local copy carried: DmLog and Descriptors were used but never imported, crashing the rdk_read_molecule_files warning path and fragment(mode='mw') respectively. Both verified fixed against the real installed package. Adds im-rdkit-utilities==1.0.0 to the Dockerfiles that actually ship the affected scripts (traced via the .nf process definitions and data-manager/*.yaml job commands): prep, mordred, moldb, oddt, and jaqpot (the last of these already had a stale/dead COPY of non-existent jaqpot*.py files, unrelated pre-existing issue, left as found otherwise). Part of InformaticsMatters/squonk2-jobs#18. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
4 tasks
tdudgeon
added a commit
that referenced
this pull request
Aug 5, 2026
im-rdkit-utilities==1.0.0 hard-pins im-data-manager-job-utilities==1.3.0, which conflicted with these Dockerfiles' older pins (1.1.1/1.0.1) and broke the build entirely (ResolutionImpossible) - not caught in #21 because the images weren't rebuilt locally at review time. Verified: mordred, moldb and oddt images now build and pass their jote suites end-to-end (mordred: 2/2, moldb's non-nextflow jobs, plus a direct check of updateChargeFlagInAtomBlock). prep's image build is separately blocked by an unrelated, pre-existing issue: its apt-get step pulls packages from bullseye-security that have since been pruned from the Debian mirror - confirmed this also fails identically on the pre-migration Dockerfile-prep, so it's not something this change introduced. Verified prep's pip resolution (the part this change actually touches) succeeds cleanly in isolation. Part of #18. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2 tasks
tdudgeon
added a commit
that referenced
this pull request
Aug 5, 2026
Dockerfile-prep never ran apt-get update itself, relying on the package index baked into informaticsmatters/vs-rdkit-base:latest at base-image build time. Since bullseye-security periodically prunes superseded point-release .debs, that stale index eventually points at files that no longer exist, and the build starts failing with 404s - this is what was blocking jote for open3dalign, sucos, assemble_conformers, cluster_butina, enumerate, le_conformers, rdkit_dedup, rdkit_props, sa_score, screen and reactor after #21/#22. No version is pinned for openbabel here, so a fresh apt-get update resolves to whatever build is currently on the mirror instead (still 3.1.1, just a different point release). Verified: image builds; full im-virtual-screening/rdkit/xchem jote suite passes 32/32 (with NXF_VER=22.10.0 per docs/testing-jobs.md, for the nextflow-based jobs in the same suite). Part of #18. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
rdkit_utils.pyand addsim-rdkit-utilities==1.0.0to the Dockerfiles that ship the affected scripts instead.open3dalign.py,sucos.py,assemble_conformers.py,cluster_butina.py,enumerate.py,le_conformers.py,rdkit_dedup.py,rdkit_props.py,sa_score.py,screen.py,reactor.py,im_mordred/descriptor_generator.py,moldb/enumerate.py,moldb/filter.py) already callgenerate_headers/create_reader/create_writerwith the canonical signature, so no call sites needed changing.DmLogandDescriptorswere referenced but never imported, crashing therdk_read_molecule_fileswarning path andfragment(mode='mw')respectively whenever hit. Verified both fixed against the real installed package.Dockerfile-prep,Dockerfile-mordred,Dockerfile-moldb,Dockerfile-oddt,Dockerfile-jaqpot— traced via the.nfprocesscontainerdirectives anddata-manager/*.yamljobcommand/imageentries, not guessed. (Dockerfile-jaqpotalready had a staleCOPYofjaqpot*.pyfiles that don't exist in this repo — pre-existing and unrelated, left as found aside from therdkit_utils.pyreference.)Part of InformaticsMatters/squonk2-jobs#18.
Test plan
rdkit_props.py's full read/calc/write loop against real installedim-rdkit-utilitieswith synthetic SMILES data — correct outputfragment(mol, 'mw')and therdk_read_molecule_fileswarning path no longerNameError🤖 Generated with Claude Code